<?php
/**
 * Вывод виджетов в заданных местах согласно конфигу.
 * В отличие от врезок (.insets) - выводят одни и те же участки кода
 * в произвольных комбинациях, независимо от разметки самой страницы
 */
class WidgetStructure extends Structure{
	protected $fieldsMap = array(
		'sidebar-1'=>'array',
		'sidebar-2'=>'array',
		'sidebar-3'=>'array',
		'sidebar-4'=>'array',
	);

	protected function applyParam($config, $name) {
		$operation = self::REPLACE;
		if(isset($config[$name])){
			$this->applyOperation($operation, $name, $config[$name]);
		}
	}


	public function widget($name){
		/* @var CMain $app */
		$app = $GLOBALS['APPLICATION'];
		if(is_array($this->getField($name))){
			$widget = $this->getField($name);
			if(!empty($widget)){
				$path = $widget[0];
				$config = array();
				if(isset($widget[1]) && is_array($widget[1])){
					$config = $widget[1];
				}
				$app->IncludeFile('widgets/'.$path . '.php', $config);
			}
		}
	}
}
